#ifndef _Session_HPP
#define _Session_HPP

class Session : public std::enable_shared_from_this<Session>
{
private:
	boost::asio::ip::tcp::socket socket;
	boost::asio::streambuf buf;
	boost::asio::deadline_timer timer;

	std::vector<std::string> data;

	void Read();
	void ReadHandler(const boost::system::error_code &error, std::size_t bytes_transferred);
	void Write(const std::string packet);
	void WriteHandler(const boost::system::error_code &error, std::size_t bytes_transferred);
	void TimerHandler(const boost::system::error_code &error);
public:
	Session(boost::asio::ip::tcp::socket socket);

	void Begin();
};

#endif